package jwr.basic;

import java.util.Iterator;
import java.util.Scanner;

public class J23_MemberMain {
	private static Scanner sc = new Scanner(System.in);
//	private static J23_MemberDAO srv = new J23_MemberDAO();
	private static J23_MemberService srv = new J23_MemberDAO();
	// J23_MemberDAO는 MemberService를 구현한 클래스이므로 객체생성시 객체유형을 인터페이스로 
	// 정의할 수 있음 (주 - 종관계)
	
	private static final String TITLE = "-=회원 관리 프로그램=-";
	
	private static final String MENU = "(1) 회원추가 (2) 회원전체조회 (3) 회원상세조회 (4) 회원수정 (5) 회원 삭제 (0)종료";
	private static final String ADDMSG = "아이디, 주민번호, 비밀번호, 우편번호, 주소, 전화번호, 휴대폰, 결제방법 순으로 입력";
	private static final String ADDOK = "성공적으로 회원가입이 완료되었습니다.";
	private static final String UPDMSG1 = "수정할 회원 아이디를 입력하세요.";
	private static final String UPDMSG2 = "비밀번호, 우편번호, 주소, 전화번호, 휴대폰, 결제방법 순으로 입력";
	private static final String UPDOK = "성공적으로 회원정보가 수정되었어요!";
	private static final String DELOK = "성공적으로 회원정보가 삭제되었어요!";
	private static final String EXITOK = "프로그램을 종료합니다!";
	private static final String DELMSG1 = "삭제할 회원 아이디를 입력하세요.";
	private static final String ERRMSG = "잘못된 코드를 입력하셨습니다.";
	private static final String SELMSG = "조회할 ID 입력.";
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 회원 관리 프로그램
		System.out.println(TITLE);
		while(true){
			System.out.print(MENU);
			switch(sc.next()){
				case "0": 
					exitMember();
					break;
				case "1":
					addMember();
					break;
				case "2":
					readMember();
					break;
				case "3":
					readOneMember();
					break;
				case "4":
					modifyMember();
					break;
				case "5":
					deleteMember();
					break;
				default :
					System.out.println(ERRMSG);
			} // switch
		} //while
	} // main
	private static void deleteMember() {
		readMember();
		String userid;
		System.out.println(DELMSG1);
		userid = sc.next();
		if(srv.deleteMember(userid)>0)
			System.out.println(DELOK);
	}
	private static void modifyMember() {
		readMember();
		J23_MemberVO mb = new J23_MemberVO();
		System.out.println(UPDMSG1);
		mb.setUserid(sc.next());
		System.out.println(UPDMSG2);
		mb.setPwd(sc.next());
		mb.setZip(sc.next());
		mb.setAddr(sc.next());
		mb.setTel(sc.next());
		mb.setMp(sc.next());
		mb.setPay(sc.next());
		if(srv.updateMember(mb)>0){
			System.out.println(UPDOK);
		}
	}
	private static void readOneMember() {
		readMember();
		System.out.println(SELMSG);
		String userid = sc.next();
		System.out.println(srv.selectOneMember(userid));
	}
	private static void readMember() {
		Iterator<J23_MemberVO> it = srv.selectMember().iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
	}
	private static void addMember() {
		readMember();
		System.out.println(ADDMSG);
		J23_MemberVO mb = new J23_MemberVO(sc.next(), sc.next(), sc.next(), sc.next(), sc.next(), sc.next(), sc.next(), sc.next());
		if(srv.insertMember(mb)>0){
			System.out.println(ADDOK);
		}
		
	}
	private static void exitMember() {
		sc.close(); 
		System.out.println(EXITOK);
		System.exit(0);
	}
	
} //class
